home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8410.arc / NR_PRINT.ASM < prev    next >
Assembly Source File  |  1986-09-14  |  2KB  |  46 lines

  1. ;    ROUTINE TO PRINT ASCII DATA TO A COLOR MONITOR
  2. ;    USER CAN DEFINE FOREGROUND AND BACKGROUND 
  3. ;       COLORS TO USE
  4. ;    WRITTEN BY DON AWALT
  5. ;    edit 12/83
  6. ;
  7. DLR_SIGN   EQU '$'          ;terminating character for input string
  8.  
  9. SPCL_BLANK EQU 128
  10. ;
  11. NR_PRINT  PROC  NEAR         ;input in dx, term by '$'
  12.       MOV   DI,DX          ;save in di for later use
  13.       MOV   SI,DX          ;save here also
  14.       MOV   CX,0          ;will tell nr of characters 
  15.                               ;to blank
  16. GET_SIZE:
  17.       MOV   AL,[SI]          ;first (or next) char of string
  18.       SUB   AL,DLR_SIGN       ;compare with term character
  19.       JZ    BLANK_IT    ;if equal, found the $
  20.       INC   CX        ;count 1 more character
  21.       INC   SI        ;advance to next in string
  22.       JMP   GET_SIZE    ;go again
  23. BLANK_IT:    ;now to blank all positions at once
  24.       MOV   BH,0          ;page nr for bios call
  25.       MOV   AL,SPCL_BLANK     ;defined in listing 2; 
  26.                               ;ascii 128
  27.       MOV   BL,1          ;color for background (1)
  28.       MOV   AH,9          ;write character function
  29.       INT   10H        ;video bios call
  30. P_NXT:
  31.       CMP   BYTE PTR [DI],DLR_SIGN    ;done?
  32.       JE    PRINT_COMPLETE     ;yes we hit dollar sign
  33.       MOV   AL,[DI]          ;now get character to display
  34.       INC   DI        ;prepare for getting next char
  35.       MOV   BL,82H          ;color 2 (with background 1 
  36.                               ;gives color 3)
  37.       MOV   AH,9          ;write character function
  38.       MOV   BH,0          ;display page 0
  39.       MOV   CX,1          ;write 1 character
  40.       INT   10H        ;call bios (video)
  41.       CALL  CURSOR_SET    ;listing 3; advance cursor
  42.       JMP   P_NXT          ;see if any more characters
  43. PRINT_COMPLETE:
  44.       RET                  ;done the work
  45. NR_PRINT  ENDP
  46.